EFCF Use Case PostalCodes Delete
Home

EFCF Use Case PostalCodes Delete

EFCF Use Case PostalCodes Delete

Een rij deleten in de PostalCodes tabel

Probleem

Een geselecteerde postcode in de lijst van de postcodes moet in de PostalCodes tabel in SQL server verwijderd worden. De Id, die in de querystring wordt meegegeven, wordt gebruikt om aan te geven welke rij er in de tabel gedeleted moet worden.

Design

We beginnen met het bestuderen van het use case diagram in Mikmak use cases PostalCodes. Vervolgens bestuderen we de beschrijving voor use case Postal Codes Delete dat ook in Mikmak use cases PostalCodes is opgenomen.

Oplossing

Hiervoor moeten we geen view maken, alleen een methode in de PostCodesController toevoegen.

Als attribuut voor de methode voegen we [httpGet] toe omdat de request vanuit een html hyperlink is verstuurd met de get methode.

We kiezen ervoor om na het deleten terug te keren naar de Selecting view om de lijst van de postcodes te tonen. In die lijst staat dan ook de verwijderde postocode niet meer.

[HttpGet]
// ? zorgt er voor dat een null value geen fout geeft
// int cannot be null
// int? is shorthand for Nullable<int> which allows you to pretend 
// that an integer can handle nulls. 
public ActionResult Delete(int? id)
{
    if (id == null)
    {
        ModelState.AddModelError("Ongeldige gegevens",
            "Geselecteerde postcode niet gevonden.");
    }
    else
    {
        LerenWerkenMetEFCF.Models.PostalCodes postalCodes =
            db.PostalCodes.Find(id);
        if (postalCodes == null)
        {
            ModelState.AddModelError("Ongeldige gegevens", 
                "Geselecteerde postcode niet gevonden.");
        }
        else
        {
            db.PostalCodes.Remove(postalCodes);
            db.SaveChanges();
        }
    }
    return View("Selecting", db.PostalCodes);
}

We controlleren als er geen foutmeldingen in de ModelState staan. Indien niet, deleten we de postcode in de PostalCodes tabel. Indien er validatiefoutmeldingen zijn voegen we die toe aan de ModelState.

Tenslotte keren we terug naar de Selecting pagina van de PostalCodes sectie van de website.

JI

2015-10-06 22:11:31